/**
 * @file Logger.cpp
 * @author rui.liang (rui.liang@ruhnix.com)
 * @brief
 * @version 1.0
 * @date 2025-09-14
 *
 * @copyright Copyright (c) 2025
 *
 */

#include "Logger.h"

#include <QTextEdit>

Logger::Logger(QTextEdit *outputWidget, QObject *parent)
    : QObject(parent), m_outputWidget(outputWidget) {
    // 连接信号到槽
    connect(this, &Logger::logMessage, this, [this](const QString &message) {
        // 每次接收到新的日志消息时，添加到 QTextEdit 控件中
        m_outputWidget->append(message);
    });
}

void Logger::log(const QString &message) {
    // 触发信号
    emit logMessage(message);
}

void Logger::log(const std::string &message) {
    // 将 std::string 转换为 QString
    QString qMessage = QString::fromStdString(message);
    // 触发信号
    emit logMessage(qMessage);
}

void Logger::log(const char *message) {
    // 将 const char* 转换为 QString
    QString qMessage = QString(message);
    // 触发信号
    emit logMessage(qMessage);
}
